home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C++ / Code Resources / Windows 95 MDEF / Sourcery / DrawMenuItem.h < prev    next >
Text File  |  1996-06-12  |  2KB  |  97 lines

  1. enum {
  2.     kRectPadding     = 1,            // Padding between menu item & whole menu
  3.     kHeightPadding     = 3,            // Vertical padding between text & menu item (x2)
  4.     kWidthPadding     = 6,            // Horizontal padding between text & menu item (x2)
  5.     kTextHtPadding     = -1,            // Vertical offset for "balanced" menu item text
  6.     kCmdKeyPadding     = 6,            // Horizontal padding added if has cmd key
  7.     kItemMarkPadding = 4            // Horizontal padding added if has item mark
  8. };
  9.  
  10. enum {
  11.     kSubMenuPadding    = 12,            // Horizontal padding added if has submenu
  12.     kSubMenuHt        = 7,            // Height of submenu triangle
  13.     kSubMenuWd        = 4                // Width of submenu triangle
  14. };
  15.  
  16. // A menu item can be in one of three states:
  17. //    1) selected, or
  18. //  2) unselected, or
  19. //  3) disabled...
  20. enum {
  21.     kMenuHilited    = true,
  22.     kMenuUnhilited    = false,
  23.     kMenuDisabled    = -1
  24. };
  25.  
  26. enum {
  27.     kMenuFont         = geneva,
  28.     kMenuSize         = 12,
  29.     kMenuFace         = 0,
  30.     kSysTextMode      = srcOr
  31. };
  32.  
  33. enum {    
  34.     kBlack             = 0,            // Some RGBColor constants
  35.     kWhite             = 65535,
  36.     kLtGray             = 56797,        // light (56797) or darker (48059)
  37.     kDkGray             = 17467            // 17467 (lighter) or darker (8738)
  38. };
  39.  
  40. enum {
  41.     kCheckMarkChar    = '√',
  42.     kWidestChar        = 'W',
  43.     kCmdKeyChar        = 17,
  44.     kDividerChar    = '-'
  45. };
  46.  
  47. /*
  48.     Codes in the cmdkey field of a menu item which
  49.     have special meanings and aren't to be taken as
  50.     command key characters.
  51. */
  52. enum {
  53.     kSubmenuCode    = 0x001B,        // same as hMenuCmd
  54.     kScriptCode        = 0x001C,
  55.     kUseICONCode    = 0x001D,
  56.     kUseSICNCode    = 0x001E
  57. };
  58.  
  59. enum {
  60.     kDefaultMDEFparametersID    = 0,
  61.     kDefaultMDEFparametersType    = 'MnuT'
  62. };
  63.  
  64. // MDEFparameters resource
  65. typedef struct {
  66.     RGBColor menuBkgndColor;
  67.     RGBColor menuHiliteColor;
  68.     RGBColor menuShadowColor;
  69.  
  70.     short menuFont;
  71.     short menuSize;
  72.     short menuFace;
  73.  
  74.     short exactWin95Look;
  75.     short reserved;
  76.     
  77.     RGBColor menuSelectionColor;    // Usually same as menuShadowColor
  78. } MDEFparameters;
  79.  
  80. // MDEFstuff struct.
  81. // Used for keeping track of menu colors, from function to function,
  82. // since we aren't allowed to have globals (though we can if we want
  83. // to, using the A4 register).
  84.  
  85. typedef struct {
  86.     RGBColor black;
  87.     RGBColor white;
  88.     MDEFparameters params;
  89. } MDEFstuff;
  90.  
  91.  
  92.  
  93. void GetMenuItemRect(Rect *menuRect, Rect *itemRect, short whichItem);
  94. Boolean IsItemDisabled(MenuHandle whichMenu, short whichItem);
  95.  
  96. void DrawMenuItem(MenuHandle whichMenu, Rect *menuRect, short whichItem,
  97.                     short hiliteState, MDEFstuff *mdefData);